﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AcadPos.Entity;
using System.Data;
using AcadPosApp.Utilidades;

namespace AcadPosApp.Cadastros
{
    public partial class CadastroCronogramaFrequencia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                carregaAreasConhecimento();
                carregaEstadosPesquisa();
                ddlEstadoPesquisa.SelectedValue = "1";
                carregaPoloPesquisa();
                pnlPesquisa.Attributes.Add("onkeypress", "return clickButton(event,'" + btnConsultar.ClientID + "')");
            }
        }

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            carregaGridPesquisa();
            ddlCurriculoPesquisa.Enabled = false;
            ddlCurriculoPesquisa.Items.Clear();
            gvwDiscProfessor.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
            ddlModuloPesquisa.Enabled = false;
            ddlModuloPesquisa.Items.Clear();
            ddlTurmas.Enabled = false;
            ddlTurmas.Items.Clear();
            //pnlPesquisaModuloCurriculo.Visible = false;
            //pnlPesquisaDisciplinas.Visible = false;            
        }

        private void carregaGridPesquisa()
        {
            gvwPesquisa.Visible = true;
            Curso curso = new Curso();
            curso.Descricao = txtPesquisa.Text;
            curso.IdAreaConhecimento = Convert.ToInt32(ddlAreaConhecimento.SelectedValue);
            gvwPesquisa.DataSource = ControlClass.CNCurso.listarCursos(curso);
            gvwPesquisa.DataBind();
            gvwPesquisa.SelectedIndex = -1;
        }

        private void carregaAreasConhecimento()
        {
            AreaConhecimento area = new AreaConhecimento();
            area.Descricao = string.Empty;
            ddlAreaConhecimento.DataSource = ControlClass.CNAreaConhecimento.listarAreaConhecimento(area);
            ddlAreaConhecimento.DataTextField = "DESCRICAO";
            ddlAreaConhecimento.DataValueField = "ID_AREA_CONHECIMENTO";
            ddlAreaConhecimento.DataBind();
        }

        protected void gvwPesquisa_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvwPesquisa.PageIndex = e.NewPageIndex;
            carregaGridPesquisa();
        }

        protected void gvwPesquisa_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            #region Configurando Imagem do Status
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[4].Visible = true;

                Image controle = (Image)e.Row.FindControl("imgStatus");
                DataRow linha = (e.Row.DataItem as DataRow);
                if ((e.Row.Cells[4].Text.Trim()) == "A")
                    controle.ImageUrl = "~/Imagens/ativo.png";
                else
                    controle.ImageUrl = "~/Imagens/inativo.png";
                e.Row.Cells[4].Visible = false;
            }
            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Cells[4].Visible = false;
            }
            #endregion
        }

        protected void ddlAreaConhecimento_SelectedIndexChanged(object sender, EventArgs e)
        {
            gvwPesquisa.Visible = false;
            ddlCurriculoPesquisa.Enabled = false;
            ddlCurriculoPesquisa.Items.Clear();
            //pnlPesquisaModuloCurriculo.Visible = false;
            //pnlPesquisaDisciplinas.Visible = false;
            ddlModuloPesquisa.Items.Clear();
            ddlModuloPesquisa.Enabled = false;
        }

        protected void gvwPesquisa_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaCurriculosCurso();
            ddlModuloPesquisa.Items.Clear();
            ddlModuloPesquisa.Enabled = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
            pnlCadastroCronograma.Visible = false;
            gvwDiscProfessor.Visible = false;
        }

        private void carregaCurriculosCurso()
        {
            ddlCurriculoPesquisa.Enabled = true;
            ddlCurriculoPesquisa.Items.Clear();
            Curriculo curriculo = new Curriculo();
            curriculo.IdCurso = Convert.ToInt32(gvwPesquisa.SelectedValue);
            DataTable dt = ControlClass.CNCurriculo.listaCurriculoPorCurso(curriculo);
            ddlCurriculoPesquisa.DataSource = dt;
            ddlCurriculoPesquisa.DataTextField = "COD_CURRICULO_SITUACAO";
            ddlCurriculoPesquisa.DataValueField = "ID_CURRICULO";
            ddlCurriculoPesquisa.DataBind();
            ddlCurriculoPesquisa.Items.Insert(0, new ListItem("Selecione", ""));
            if (dt.Rows.Count <= 0)
            {
                ddlCurriculoPesquisa.Enabled = false;
                ddlCurriculoPesquisa.Items.Clear();
            }
        }

        protected void ddlCurriculoPesquisa_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaModulosCurriculo();
            //carregaDisciplinasModulo();
            carregaTurmasPesquisa();
            gvwDiscProfessor.Visible = false;
            pnlCadastroCronograma.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;

        }

        private void carregaModulosCurriculo()
        {
            if (gvwPesquisa.SelectedIndex > -1 && ddlCurriculoPesquisa.SelectedValue != "")
            {
                //pnlPesquisaModuloCurriculo.Visible = false;
                //pnlPesquisaDisciplinas.Visible = false;
                ddlModuloPesquisa.Enabled = true;
                ModuloCurriculo moduloCurriculo = new ModuloCurriculo();
                moduloCurriculo.IdCurriculo = Convert.ToInt32(ddlCurriculoPesquisa.SelectedValue);
                DataTable dt = ControlClass.CNModuloCurriculo.listaModulosCurriculo(moduloCurriculo);
                ddlModuloPesquisa.DataSource = dt;
                ddlModuloPesquisa.DataTextField = "MODULO_SITUACAO";
                ddlModuloPesquisa.DataValueField = "ID_MODULO_CURRICULO";
                ddlModuloPesquisa.DataBind();
                if (dt.Rows.Count <= 0)
                {
                    ddlModuloPesquisa.Enabled = false;
                    ddlModuloPesquisa.Items.Clear();
                    ddlModuloPesquisa.Enabled = false;
                }
                //else
                //carregaDisciplinasModulo();
            }
            else
            {
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Selecione um curso para inserir um currículo e/ou curso!")), true);
                ddlModuloPesquisa.Items.Clear();
                ddlModuloPesquisa.Enabled = false;
                //ddlDisciplinasModulo.Items.Clear();
                //ddlDisciplinasModulo.Enabled = false;
            }

        }

        protected void ddlModuloPesquisa_SelectedIndexChanged(object sender, EventArgs e)
        {
            //carregaDisciplinasModulo();
            carregaTurmasPesquisa();
            gvwDiscProfessor.Visible = false;
            pnlCadastroCronograma.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
        }

        //private void carregaDisciplinasModulo()
        //{
        //    if (gvwPesquisa.SelectedIndex > -1 && ddlCurriculoPesquisa.SelectedValue != "" && ddlModuloPesquisa.SelectedValue != "")
        //    {
        //        ddlDisciplinasModulo.Enabled = true;
        //        MatrizCurricular matriz = new MatrizCurricular();
        //        matriz.IdModuloCurriculo = Convert.ToInt32(ddlModuloPesquisa.SelectedValue);
        //        DataTable dtDisciplinasModulo = ControlClass.CNMatrizCurricular.listarDisciplinasModuloCurriculo(matriz);
        //        ddlDisciplinasModulo.DataSource = dtDisciplinasModulo;
        //        ddlDisciplinasModulo.DataTextField = "DESCRICAO_DISCIPLINA";
        //        ddlDisciplinasModulo.DataValueField = "ID_MATRIZ_CURRICULAR";
        //        ddlDisciplinasModulo.DataBind();
        //        if (dtDisciplinasModulo.Rows.Count <= 0)
        //        {
        //            ddlDisciplinasModulo.Enabled = false;
        //            ddlDisciplinasModulo.Items.Clear();
        //        }
        //    }
        //    else
        //    {
        //        ddlDisciplinasModulo.Enabled = false;
        //        ddlDisciplinasModulo.Items.Clear();
        //        //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Selecione um curso, currículo e módulo para listar a disciplinas!")), true);
        //    }
        //}

        private void carregaEstadosPesquisa()
        {
            ddlEstadoPesquisa.DataSource = ControlClass.CNEstado.listaTodosEstados();
            ddlEstadoPesquisa.DataTextField = "ESTADO";
            ddlEstadoPesquisa.DataValueField = "ID_ESTADO";
            ddlEstadoPesquisa.DataBind();
        }

        protected void ddlEstadoPesquisa_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaPoloPesquisa();
            carregaTurmasPesquisa();
            gvwDiscProfessor.Visible = false;
            pnlCadastroCronograma.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
        }

        private void carregaPoloPesquisa()
        {
            if (ddlEstadoPesquisa.SelectedValue != "")
            {
                Polo polo = new Polo();
                polo.IdEstado = Convert.ToInt32(ddlEstadoPesquisa.SelectedValue);
                DataTable dt = ControlClass.CNPolo.listaPolosEstado(polo);
                ddlPoloPesquisa.DataSource = dt;
                ddlPoloPesquisa.DataTextField = "DESCRICAO";
                ddlPoloPesquisa.DataValueField = "ID_POLO";
                ddlPoloPesquisa.DataBind();
                if (dt.Rows.Count <= 0)
                {
                    ddlPoloPesquisa.Enabled = false;
                    ddlPoloPesquisa.Items.Clear();
                }
                else
                    ddlPoloPesquisa.Enabled = true;


            }
            else
            {
                ddlPoloPesquisa.Enabled = false;
                ddlPoloPesquisa.Items.Clear();
            }
        }

        protected void ddlPoloPesquisa_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaTurmasPesquisa();
            gvwDiscProfessor.Visible = false;
            pnlCadastroCronograma.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
        }

        private void carregaTurmasPesquisa()
        {
            if (ddlPoloPesquisa.SelectedValue != "" && ddlModuloPesquisa.SelectedValue != "" && ddlCurriculoPesquisa.SelectedValue != "")
            {
                ddlTurmas.Enabled = true;
                Turma turma = new Turma();
                turma.IdCurriculo = Convert.ToInt32(ddlCurriculoPesquisa.SelectedValue);
                turma.IdPolo = Convert.ToInt32(ddlPoloPesquisa.SelectedValue);
                turma.IdModulo = Convert.ToInt32(ddlModuloPesquisa.SelectedValue);
                DataTable dt = ControlClass.CNTurma.listaTurmas(turma);

                ddlTurmas.DataSource = dt;
                ddlTurmas.DataTextField = "COD_TURMA";
                ddlTurmas.DataValueField = "ID_TURMA";
                ddlTurmas.DataBind();

                if (dt.Rows.Count <= 0)
                {
                    ddlTurmas.Enabled = false;
                    ddlTurmas.Items.Clear();
                }
            }
            else
            {
                ddlTurmas.Enabled = false;
                ddlTurmas.Items.Clear();
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Selecione todos os campos para procurar uma Turma!")), true);
            }
        }

        protected void btnConsultarDisciplinasProfessor_Click(object sender, EventArgs e)
        {
            if (ddlTurmas.SelectedValue != "")
            {
                carregaDiscProfessor();
                pnlCronograma.Visible = false;
                gvwDiscProfessor.Visible = true;
                btnIncluirCronograma.Visible = false;
            }
            else
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Selecione uma turma para consultar as disciplinas.")), true);
            }
        }

        private void carregaDiscProfessor()
        {
            Turma turma = new Turma();
            turma.IdTurma = Convert.ToInt32(ddlTurmas.SelectedValue);
            gvwDiscProfessor.DataSource = ControlClass.CNDisciplina.listaDisciplinasProfessor(turma);
            gvwDiscProfessor.DataBind();
            gvwDiscProfessor.SelectedIndex = -1;
        }

        protected void gvwDiscProfessor_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvwDiscProfessor.PageIndex = e.NewPageIndex;
            carregaDiscProfessor();
        }

        private void carregaCronograma()
        {
            pnlCronograma.Visible = true;
            int idProfDisciplina = Convert.ToInt32(gvwDiscProfessor.DataKeys[gvwDiscProfessor.SelectedIndex]["ID_PROFISSIONAL_DISCIPLINA"].ToString());
            gvwCronograma.DataSource = ControlClass.CNDisciplina.listaCronograma(idProfDisciplina);
            gvwCronograma.DataBind();
            gvwCronograma.SelectedIndex = -1;
        }

        protected void gvwDiscProfessor_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaCronograma();
            //btnIncluirCronograma.Visible = true;
        }

        protected void gvwCronograma_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvwCronograma.PageIndex = e.NewPageIndex;
            carregaCronograma();
        }

        protected void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime dtAula = Convert.ToDateTime(txtDtAula.Text);
                string descAula = txtDescAula.Text;
                string conteudoAula = txtConteudoAula.Text;
                int idProfissionalDisciplina = Convert.ToInt32(gvwDiscProfessor.DataKeys[gvwDiscProfessor.SelectedIndex]["ID_PROFISSIONAL_DISCIPLINA"]);

                if (btnConfirmar.CommandName == "Inserir")
                {
                    if (ControlClass.CNDisciplina.inserirCronograma(dtAula, descAula, conteudoAula, idProfissionalDisciplina))
                    {
                        pnlPesquisa.Enabled = true;
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoInserir, "")), true);
                        carregaCronograma();
                        pnlCadastroCronograma.Visible = false;
                    }
                }
                else if (btnConfirmar.CommandName == "Alterar")
                {
                    int idCronograma = Convert.ToInt32(ViewState["ID_CRONOGRAMA"].ToString());
                    if (ControlClass.CNDisciplina.alterarCronograma(idCronograma, dtAula, descAula, conteudoAula))
                    {
                        pnlPesquisa.Enabled = true;
                        carregaCronograma();
                        pnlCadastroCronograma.Visible = false;
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoAlterar, "")), true);
                    }
                }
            }

            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Erro, ex.Message.ToString())), true);
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            pnlCadastroCronograma.Visible = false;
            pnlPesquisa.Enabled = true;
        }

        protected void btnIncluirCronograma_Click(object sender, EventArgs e)
        {
            pnlCadastroCronograma.Visible = true;
            TrustX.Util.UtilForm.LimparCampos(pnlCadastroCronograma);
            pnlPesquisa.Enabled = false;
            btnConfirmar.CommandName = "Inserir";
        }

        protected void gvwCronograma_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int index = int.Parse((String)e.CommandArgument);
                int idCronograma = Convert.ToInt32(gvwCronograma.DataKeys[index]["ID_CRONOGRAMA"].ToString());

                if (e.CommandName == "Alterar")
                {
                    pnlCadastroCronograma.Visible = true;

                    txtDtAula.Text = gvwCronograma.Rows[index].Cells[4].Text.ToString();
                    txtDescAula.Text = gvwCronograma.Rows[index].Cells[5].Text.ToString();
                    if (txtDescAula.Text == "&nbsp;")
                        txtDescAula.Text = string.Empty;
                    txtConteudoAula.Text = gvwCronograma.Rows[index].Cells[6].Text.ToString();
                    if (txtConteudoAula.Text == "&nbsp;")
                        txtConteudoAula.Text = string.Empty;

                    pnlPesquisa.Enabled = false;
                    ViewState["ID_CRONOGRAMA"] = idCronograma.ToString();
                    btnConfirmar.CommandName = "Alterar";
                }
                else if (e.CommandName == "Excluir")
                {
                    pnlCadastroCronograma.Visible = false;
                    if (ControlClass.CNDisciplina.excluirCronograma(idCronograma))
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoExcluir, "")), true);
                        carregaCronograma();
                        pnlCadastroCronograma.Visible = false;
                        pnlPesquisa.Enabled = true;
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Não foi possível realizar a operação. Por favor, tente novamente.")), true);
                    }
                }
                else if (e.CommandName == "GerarFrequencia")
                {
                    pnlCadastroCronograma.Visible = false;
                    pnlFrequencia.Visible = false;
                    int idProfDisciplina = Convert.ToInt32(gvwCronograma.DataKeys[index]["ID_PROFISSIONAL_DISCIPLINA"].ToString());
                    if (ControlClass.CNDisciplina.incluirFrequencia(idProfDisciplina))
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoInserir, "")), true);
                        carregaCronograma();
                        pnlCadastroCronograma.Visible = false;
                        pnlPesquisa.Enabled = true;
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Não foi possível realizar a operação. Por favor, tente novamente.")), true);
                    }
                }
                else if (e.CommandName == "ExcluirFrequencia")
                {
                    pnlCadastroCronograma.Visible = false;
                    pnlFrequencia.Visible = false;
                    if (ControlClass.CNDisciplina.excluirFrequencia(idCronograma))
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoExcluir, "")), true);
                        carregaCronograma();
                        pnlCadastroCronograma.Visible = false;
                        pnlPesquisa.Enabled = true;
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Não foi possível realizar a operação. Por favor, tente novamente.")), true);
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("FK"))
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.ErroChaveEstrangeira, "")), true);
                else
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Erro, "")), true);
                pnlCadastroCronograma.Visible = false;
                pnlPesquisa.Enabled = true;
            }
        }

        protected void ddlTurmas_SelectedIndexChanged(object sender, EventArgs e)
        {
            gvwDiscProfessor.Visible = false;
            pnlCronograma.Visible = false;
            btnIncluirCronograma.Visible = false;
        }

        protected void gvwCronograma_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton l = (ImageButton)e.Row.FindControl("EXCLUIR");
                l.CommandArgument = e.Row.RowIndex.ToString();

                ImageButton button2 = (ImageButton)e.Row.FindControl("ImgAlterar");
                button2.CommandArgument = e.Row.RowIndex.ToString();

                Button b = (Button)e.Row.FindControl("btnGerarExcluirFrequencia");
                b.CommandArgument = e.Row.RowIndex.ToString();

            }
        }

        protected void gvwCronograma_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                foreach (DataControlFieldCell cell in e.Row.Cells)
                {
                    // Verificando todas as colunas da linha
                    foreach (Control control in cell.Controls)
                    {
                        //No caso o botão é do tipo Imagem Button
                        ImageButton button = control as ImageButton;
                        if (button != null && button.CommandName == "Excluir")
                        {
                            // Adicionando a mensagem javascript
                            button.OnClientClick = "return ShowConfirm('Tem certeza que deseja excluir?', '" + button.ClientID + "');";
                        }


                        Button button2 = control as Button;
                        if (button2 != null && button2.CommandName == "Frequencia")
                        {
                            if (e.Row.Cells[7].Text.ToString() == "0")
                            {
                                button2.Text = "Gerar Frequência";
                                button2.CommandName = "GerarFrequencia";
                                button2.OnClientClick = "return ShowConfirm('Tem certeza que deseja gerar?', '" + button2.ClientID + "');";
                                e.Row.Cells[0].Enabled = false;
                            }
                            else
                            {
                                button2.Text = "Excluir Frequência";
                                button2.CommandName = "ExcluirFrequencia";
                                button2.OnClientClick = "return ShowConfirm('Tem certeza que deseja excluir?', '" + button2.ClientID + "');";
                                e.Row.Cells[0].Enabled = true;
                            }

                        }
                    }
                }
                e.Row.Cells[6].Visible = false;
                e.Row.Cells[7].Visible = false;


            }

            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Cells[6].Visible = false;
                e.Row.Cells[7].Visible = false;

            }
        }

        protected void gvwDiscProfessor_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[3].Text.ToString() == "" || e.Row.Cells[3].Text.ToString() == "&nbsp;")
                {
                    e.Row.Cells[0].Enabled = false;
                    e.Row.Cells[0].Enabled = false;
                }
            }


        }

        protected void gvwCronograma_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregaFrequencias();
        }

        private void carregaFrequencias()
        {
            pnlFrequencia.Visible = true;
            pnlCronograma.Enabled = false;
            btnIncluirCronograma.Enabled = false;
            pnlPesquisa.Enabled = false;
            int idCronograma = Convert.ToInt32(gvwCronograma.DataKeys[gvwCronograma.SelectedIndex]["ID_CRONOGRAMA"].ToString());
            gvwFrequencia.DataSource = ControlClass.CNDisciplina.listarFrequencia(idCronograma);
            gvwFrequencia.DataBind();
        }

        protected void btnConfirmarFrequencia_Click(object sender, EventArgs e)
        {
            int qtdFrequenciaAlteradas = 0;
            string msg = string.Empty;
            try
            {                
                foreach (GridViewRow row in gvwFrequencia.Rows)
                {
                    CheckBox ckh = (CheckBox)row.FindControl("CheckBox1");
                    if (ckh.Checked)
                    {
                        int idFrequencia = Convert.ToInt32(gvwFrequencia.DataKeys[row.RowIndex]["ID_FREQUENCIA"].ToString());
                        if (ControlClass.CNDisciplina.atualizarFrequencia(idFrequencia, 'F'))
                        {
                            qtdFrequenciaAlteradas++;
                        }
                    }
                    else
                    {
                        int idFrequencia = Convert.ToInt32(gvwFrequencia.DataKeys[row.RowIndex]["ID_FREQUENCIA"].ToString());
                        if (ControlClass.CNDisciplina.atualizarFrequencia(idFrequencia, 'P'))
                        {
                            qtdFrequenciaAlteradas++;
                        }
                    }
                    
                }

                if (qtdFrequenciaAlteradas == 1)
                {
                    msg = "Frequência do aluno alterada com sucesso!";
                }
                else if (qtdFrequenciaAlteradas > 1)
                {
                    msg = "Frequências dos alunos alteradas com sucesso!";
                }
                else
                {
                    msg = "Nenhuma frequencia foi alterada! Selecione pelo menos um aluno!";
                }                
                carregaFrequencias();
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, msg)), true);
            }
            catch
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Erro, string.Empty)), true);
            }
        }

        protected void btnCancelarFrequencia_Click(object sender, EventArgs e)
        {
            pnlCronograma.Enabled = true;
            pnlPesquisa.Enabled = true;
            pnlFrequencia.Visible = false;
            btnIncluirCronograma.Enabled = true;
            gvwCronograma.SelectedIndex = -1;
        }

        protected void gvwFrequencia_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Cells[3].Visible = false;
            }

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[3].Visible = false;

                foreach (DataControlFieldCell cell in e.Row.Cells)
                {
                    // Verificando todas as colunas da linha
                    foreach (Control control in cell.Controls)
                    {
                        //No caso o botão é do tipo Imagem Button
                        CheckBox chk = control as CheckBox;

                        if (chk != null)
                        {
                            if (e.Row.Cells[3].Text.ToString() == "F")
                            {
                                chk.Checked = true;
                            }
                            else
                                chk.Checked = false;
                        }
                    }
                }
            }
        }
    }
}